﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SILAS.Entidades;

namespace SILAS.DAO
{
   public class FuenteDaguaDAO:MasterDAO, IFuenteDaguaDAO
    {
       public void agregarFuente(FuenteAgua Fuente)
       {
           context.FuenteAguas.Add(Fuente);
           context.SaveChanges();
       }

       public void modificarFuente(FuenteAgua Fuente)
       {
           var existe = context.FuenteAguas.Find(Fuente.Id);

           if (existe !=null)
           {
               existe.IdTipoFuente = Fuente.IdTipoFuente;
               existe.Denominacion = Fuente.Denominacion;
               existe.Duenio = Fuente.Duenio;
               existe.Caudal = Fuente.Caudal;
               existe.Ubicacion.Altura = Fuente.Ubicacion.Altura;
               existe.Ubicacion.CoorX = Fuente.Ubicacion.CoorX;
               existe.Ubicacion.CoorY = Fuente.Ubicacion.CoorY;

               context.Entry(existe).State = System.Data.EntityState.Modified;
               context.SaveChanges();

           }

           
       }
      public List<FuenteAgua> ListaFuentesbycriterio(string term)
       {
           var query = from p in context.FuenteAguas
                       select p;

           if (term != null)
           {
               query = query.Where(p => p.Denominacion.ToUpper().StartsWith(term.ToUpper()) ||
                                   p.Denominacion.ToUpper().Contains(term.ToUpper())
                                   );
           }

           return query.OrderBy(p => p.Denominacion).Skip(0).Take(10).ToList();

       }

       public List<FuenteAgua> ListaFuentes()
       {
           var query = (from p in context.FuenteAguas
                       select p).ToList();
           return query;
       }
       public FuenteAgua GetFuentebyId(Int32 id)
       {
           return context.FuenteAguas.Find(id);
       }

       public void eliminarFuente(Int32 id)
       {
           var existe = context.FuenteAguas.Find(id);
           if (existe != null)
           {
               context.FuenteAguas.Remove(existe);
               context.SaveChanges();
           }
       }
       public List<TipoFuenteAgua> ListatipoFuenteAgua() 
       {
           var query = from c in context.TipoFuenteAguas
                       orderby c.Descripción descending
                       select c;

           return query.ToList(); 

       }
    }
}
